install_dir: testexecdir
)
+node_parser = executable(
+ 'node-parser',
+ ['node-parser.c'],
+ dependencies: libgtk_dep,
+ install: get_option('install-tests'),
+ install_dir: testexecdir
+)
+
test('nodes (cairo)', test_render_nodes,
args: [ '--tap', '-k' ],
env: [ 'GIO_USE_VOLUME_MONITOR=unix',
suite: 'gsk')
endforeach
+node_parser_tests = [
+ 'crash1',
+ 'crash2',
+ 'crash3',
+]
+
+foreach test : node_parser_tests
+ test('parser ' + test, node_parser,
+ args: [join_paths(meson.current_source_dir(), 'nodeparser', test + '.node')],
+ env: [ 'GIO_USE_VOLUME_MONITOR=unix',
+ 'GSETTINGS_BACKEND=memory',
+ 'GTK_CSD=1',
+ 'G_ENABLE_DIAGNOSTIC=0',
+ 'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
+ 'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
+ 'GSK_RENDERER=opengl'
+ ],
+ suite: 'gsk')
+endforeach
+
if have_vulkan
test('nodes (vulkan)', test_render_nodes,
args: [ '--tap', '-k' ],
--- /dev/null
+#include <gtk/gtk.h>
+
+int
+main (int argc, char **argv)
+{
+ GError *error = NULL;
+ GskRenderNode *node;
+ GBytes *bytes;
+ GFile *file;
+
+ g_assert (argc == 2);
+
+ gtk_init ();
+
+ file = g_file_new_for_commandline_arg (argv[1]);
+ bytes = g_file_load_bytes (file, NULL, NULL, &error);
+ g_assert_no_error (error);
+ g_assert (bytes != NULL);
+
+ node = gsk_render_node_deserialize (bytes, &error);
+ if (error)
+ g_test_message ("Error: %s\n", error->message);
+
+ g_clear_error (&error);
+ g_clear_pointer (&node, gsk_render_node_unref);
+ g_bytes_unref (bytes);
+ g_object_unref (file);
+
+ return 0;
+}